home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Franz PD / Franz PD Disk #067 (1990-04)(Amiga User Group Deutschland e.V.).zip / Franz PD Disk #067 (1990-04)(Amiga User Group Deutschland e.V.).adf / Include / InputEvent.i < prev    next >
Text File  |  1989-07-02  |  4KB  |  144 lines

  1.  
  2. {
  3.     InputEvents.i
  4.  
  5.     These are the definitions necessary for messing around with
  6.     input events.
  7. }
  8.  
  9. CONST
  10. {   --- InputEvent.ie_Class --- }
  11. { A NOP input event }
  12.     IECLASS_NULL        = $00;
  13. { A raw keycode from the keyboard device }
  14.     IECLASS_RAWKEY        = $01;
  15. { The raw mouse report from the game port device }
  16.     IECLASS_RAWMOUSE    = $02;
  17. { A private console event }
  18.     IECLASS_EVENT        = $03;
  19. { A Pointer Position report }
  20.     IECLASS_POINTERPOS    = $04;
  21. { A timer event }
  22.     IECLASS_TIMER        = $06;
  23. { select button pressed down over a Gadget (address in ie_EventAddress) }
  24.     IECLASS_GADGETDOWN    = $07;
  25. { select button released over the same Gadget (address in ie_EventAddress) }
  26.     IECLASS_GADGETUP    = $08;
  27. { some Requester activity has taken place.  See Codes REQCLEAR and REQSET }
  28.     IECLASS_REQUESTER    = $09;
  29. { this is a Menu Number transmission (Menu number is in ie_Code) }
  30.     IECLASS_MENULIST    = $0A;
  31. { User has selected the active Window's Close Gadget }
  32.     IECLASS_CLOSEWINDOW    = $0B;
  33. { this Window has a new size }
  34.     IECLASS_SIZEWINDOW    = $0C;
  35. { the Window pointed to by ie_EventAddress needs to be refreshed }
  36.     IECLASS_REFRESHWINDOW    = $0D;
  37. { new preferences are available }
  38.     IECLASS_NEWPREFS    = $0E;
  39. { the disk has been removed }
  40.     IECLASS_DISKREMOVED    = $0F;
  41. { the disk has been inserted }
  42.     IECLASS_DISKINSERTED    = $10;
  43. { the window is about to be been made active }
  44.     IECLASS_ACTIVEWINDOW    = $11;
  45. { the window is about to be made inactive }
  46.     IECLASS_INACTIVEWINDOW    = $12;
  47.  
  48.  
  49. { the last class }
  50.     IECLASS_MAX        = $12;
  51.  
  52.  
  53.  
  54. {   --- InputEvent.ie_Code ---     }
  55. { IECLASS_RAWKEY }
  56.     IECODE_UP_PREFIX    = $80;
  57.     IECODE_KEY_CODE_FIRST    = $00;
  58.     IECODE_KEY_CODE_LAST    = $77;
  59.     IECODE_COMM_CODE_FIRST    = $78;
  60.     IECODE_COMM_CODE_LAST    = $7F;
  61.   
  62. { IECLASS_ANSI }
  63.     IECODE_C0_FIRST        = $00;
  64.     IECODE_C0_LAST        = $1F;
  65.     IECODE_ASCII_FIRST    = $20;
  66.     IECODE_ASCII_LAST    = $7E;
  67.     IECODE_ASCII_DEL    = $7F;
  68.     IECODE_C1_FIRST        = $80;
  69.     IECODE_C1_LAST        = $9F;
  70.     IECODE_LATIN1_FIRST    = $A0;
  71.     IECODE_LATIN1_LAST    = $FF;
  72.  
  73. { IECLASS_RAWMOUSE }
  74.     IECODE_LBUTTON        = $68;  { also uses IECODE_UP_PREFIX }
  75.     IECODE_RBUTTON        = $69;
  76.     IECODE_MBUTTON        = $6A;
  77.     IECODE_NOBUTTON        = $FF;
  78.   
  79. { IECLASS_EVENT }
  80.     IECODE_NEWACTIVE    = $01;  { active input window changed }
  81.  
  82. { IECLASS_REQUESTER Codes }
  83. { REQSET is broadcast when the first Requester (not subsequent ones) opens
  84.    in the Window }
  85.     IECODE_REQSET        = $01;
  86. { REQCLEAR is broadcast when the last Requester clears out of the Window }
  87.     IECODE_REQCLEAR        = $00;
  88.  
  89.  
  90. {   --- InputEvent.ie_Qualifier --- }
  91.     IEQUALIFIER_LSHIFT    = $0001;
  92.     IEQUALIFIER_RSHIFT    = $0002;
  93.     IEQUALIFIER_CAPSLOCK    = $0004;
  94.     IEQUALIFIER_CONTROL    = $0008;
  95.     IEQUALIFIER_LALT    = $0010;
  96.     IEQUALIFIER_RALT    = $0020;
  97.     IEQUALIFIER_LCOMMAND    = $0040;
  98.     IEQUALIFIER_RCOMMAND    = $0080;
  99.     IEQUALIFIER_NUMERICPAD    = $0100;
  100.     IEQUALIFIER_REPEAT    = $0200;
  101.     IEQUALIFIER_INTERRUPT    = $0400;
  102.     IEQUALIFIER_MULTIBROADCAST    = $0800;
  103.     IEQUALIFIER_MIDBUTTON    = $1000;
  104.     IEQUALIFIER_RBUTTON    = $2000;
  105.     IEQUALIFIER_LEFTBUTTON    = $4000;
  106.     IEQUALIFIER_RELATIVEMOUSE = $8000;
  107.  
  108.     IEQUALIFIERB_LSHIFT        = 0;
  109.     IEQUALIFIERB_RSHIFT        = 1;
  110.     IEQUALIFIERB_CAPSLOCK        = 2;
  111.     IEQUALIFIERB_CONTROL        = 3;
  112.     IEQUALIFIERB_LALT        = 4;
  113.     IEQUALIFIERB_RALT        = 5;
  114.     IEQUALIFIERB_LCOMMAND        = 6;
  115.     IEQUALIFIERB_RCOMMAND        = 7;
  116.     IEQUALIFIERB_NUMERICPAD        = 8;
  117.     IEQUALIFIERB_REPEAT        = 9;
  118.     IEQUALIFIERB_INTERRUPT        = 10;
  119.     IEQUALIFIERB_MULTIBROADCAST    = 11;
  120.     IEQUALIFIERB_MIDBUTTON        = 12;
  121.     IEQUALIFIERB_RBUTTON        = 13;
  122.     IEQUALIFIERB_LEFTBUTTON        = 14;
  123.     IEQUALIFIERB_RELATIVEMOUSE    = 15;
  124.   
  125. {------ InputEvent ------------------------------------------------}
  126.  
  127. TYPE
  128.     TimeVal = record
  129.     tvSecs,            { This actually belongs in TimerDevice.i }
  130.     tvMicro : Integer;
  131.     end;
  132.  
  133.     InputEvent = RECORD
  134.             ieNextEvent : ^InputEvent;    { the chronologically next event }
  135.             ieClass    : Byte;        { the input event class }
  136.             ieSubClass    : Byte;        { optional subclass of the class }
  137.             ieCode    : Short;    { the input event code }
  138.             ieQualifier    : Short;    { qualifiers in effect for the event}
  139.             ieXYorAddr    : Integer;    { Pointer pos or ieAddr }
  140.             ieTimeStamp    : TimeVal;    { the system tick at the event }
  141.         end;
  142.     InputEventPtr = ^InputEvent;
  143.  
  144.